﻿using System.ComponentModel.Composition;
using System.Linq;
using MediaAssistant.Constants;
using MediaAssistant.DAL;

namespace MediaAssistant.MusicDJ
{
    [Export(typeof(IMusicDJ))]
    public class SequentialDJ:AMusicDJ
    {
        public SequentialDJ()
            : base(MusicDJName.SequentialDJ)
        {
        }

        #region Overrides of AMusicDJ

        protected override void UpdateMusicStack()
        {
            var currentIndex = AllMusics.IndexOf(DataSource.PlayingMusic);
            for (var i = 0; i < currentIndex; i++)
            {
                if (AllMusics[i].Equals(DataSource.PlayingMusic) == false)
                {
                    PreviousMusicStack.Push(AllMusics[i]);
                }
                ExcludeMusic(AllMusics[i]);
            }
        }

        protected override void CalculateProbability(Music playingMusic)
        {
            foreach (var nextMusic in NextMusics)
            {
                nextMusic.Probability = 0;
            }
            NextMusics.First().Probability = 1;
        }

        #endregion
    }
}
